[INV-BACKEND-026] Создать метод OnVideoStreamConnect()

Реализация WebSocket-сервера оркестрации фреймов и сборки списков

Author

Services Task & Simulation Framework Documentation

Published

July 13, 2026

NoteКраткая карточка задачи

  • Инструкция по шагам:
    1. На Шаге 4–5: Обеспечить прием и долгосрочное удержание медиа-потока от клиента. Извлечь проброшенные шлюзом метаданные x_request_id и app_lang.
    2. Принимать непрерывный поток сырых бинарных видеофреймов (Raw Frames) в асинхронном высокопроизводительном цикле.
    3. На Шаге 6: Пересылать каждый прилетевший кадр изображения по gRPC в микросервис product-vision-processor через метод TrackVideoFrames.
    4. Перехватывать ответные gRPC-пакеты с массивами координат рамок и именами найденных продуктов и моментально отправлять их обратно в WebSocket-канал клиента (На Шаге 9) для рендеринга Bounding Boxes на экране смартфона пользователя в реальном времени.
    5. На Шаге 10–12: При получении управляющей команды STOP_STREAM остановить бесконечный цикл чтения кадров. Выполнить синхронный запрос к In-Memory Redis для вычитки агрегированного за всю сессию списка классов продуктов. Очистить сессионный кэш в Redis.
    6. Скомпилировать полученный массив классов в плоскую текстовую строку, упаковать в JSON-пакет (raw_text_input, app_lang, x_request_id, "source": "STREAM_YOLO_V2") и опубликовать в Kafka-топик bpds.inventory.in.receipt.upload. Закрыть WebSocket-соединение.